Use new mnemonic convenience functions
authorHavoc Pennington <hp@redhat.com>
Tue, 5 Jun 2001 18:22:30 +0000 (18:22 +0000)
committerHavoc Pennington <hp@src.gnome.org>
Tue, 5 Jun 2001 18:22:30 +0000 (18:22 +0000)
2001-06-05  Havoc Pennington  <hp@redhat.com>

* gtk/gtkcolorsel.c: Use new mnemonic convenience functions

Applying patch from Jeff Franks, with function docs added.

* gtk/gtkcheckbutton.c (gtk_check_button_new_with_mnemonic):
remove call to set_mnemonic_widget, change docs a bit.

* gtk/gtkimagemenuitem.c (gtk_image_menu_item_new_with_mnemonic):
new function

* gtk/gtkcheckmenuitem.c (gtk_check_menu_item_new_with_mnemonic):
new function

* gtk/gtkmenuitem.c (gtk_menu_item_new_with_mnemonic): new function

* gtk/gtkradiobutton.c (gtk_radio_button_new_with_mnemonic): new
function
(gtk_radio_button_new_with_mnemonic_from_widget): new function

* gtk/gtkradiomenuitem.c (gtk_radio_menu_item_new_with_mnemonic):
new function

* gtk/gtktogglebutton.c (gtk_toggle_button_new_with_mnemonic): new
function

* gtk/gtklabel.c (gtk_label_new_with_mnemonic): Improve docs on
auto-selection of mnemonic widget.

22 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkcheckbutton.c
gtk/gtkcheckmenuitem.c
gtk/gtkcheckmenuitem.h
gtk/gtkcolorsel.c
gtk/gtkimagemenuitem.c
gtk/gtkimagemenuitem.h
gtk/gtklabel.c
gtk/gtkmenuitem.c
gtk/gtkmenuitem.h
gtk/gtkradiobutton.c
gtk/gtkradiobutton.h
gtk/gtkradiomenuitem.c
gtk/gtkradiomenuitem.h
gtk/gtktogglebutton.c
gtk/gtktogglebutton.h

index 9c6b5c9dce996ac6177a6783ed02965ff5995d90..e343295994ccee8b7097d69b34d5c7c704c49678 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,33 @@
+2001-06-05  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkcolorsel.c: Use new mnemonic convenience functions
+
+       Applying patch from Jeff Franks, with function docs added.
+       
+       * gtk/gtkcheckbutton.c (gtk_check_button_new_with_mnemonic):
+       remove call to set_mnemonic_widget, change docs a bit.  
+
+       * gtk/gtkimagemenuitem.c (gtk_image_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkcheckmenuitem.c (gtk_check_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkmenuitem.c (gtk_menu_item_new_with_mnemonic): new function
+
+       * gtk/gtkradiobutton.c (gtk_radio_button_new_with_mnemonic): new
+       function
+       (gtk_radio_button_new_with_mnemonic_from_widget): new function
+
+       * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtktogglebutton.c (gtk_toggle_button_new_with_mnemonic): new
+       function        
+
+       * gtk/gtklabel.c (gtk_label_new_with_mnemonic): Improve docs on 
+       auto-selection of mnemonic widget.
+
 Mon Jun  4 15:05:24 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_max_width):
index 9c6b5c9dce996ac6177a6783ed02965ff5995d90..e343295994ccee8b7097d69b34d5c7c704c49678 100644 (file)
@@ -1,3 +1,33 @@
+2001-06-05  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkcolorsel.c: Use new mnemonic convenience functions
+
+       Applying patch from Jeff Franks, with function docs added.
+       
+       * gtk/gtkcheckbutton.c (gtk_check_button_new_with_mnemonic):
+       remove call to set_mnemonic_widget, change docs a bit.  
+
+       * gtk/gtkimagemenuitem.c (gtk_image_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkcheckmenuitem.c (gtk_check_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkmenuitem.c (gtk_menu_item_new_with_mnemonic): new function
+
+       * gtk/gtkradiobutton.c (gtk_radio_button_new_with_mnemonic): new
+       function
+       (gtk_radio_button_new_with_mnemonic_from_widget): new function
+
+       * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtktogglebutton.c (gtk_toggle_button_new_with_mnemonic): new
+       function        
+
+       * gtk/gtklabel.c (gtk_label_new_with_mnemonic): Improve docs on 
+       auto-selection of mnemonic widget.
+
 Mon Jun  4 15:05:24 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_max_width):
index 9c6b5c9dce996ac6177a6783ed02965ff5995d90..e343295994ccee8b7097d69b34d5c7c704c49678 100644 (file)
@@ -1,3 +1,33 @@
+2001-06-05  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkcolorsel.c: Use new mnemonic convenience functions
+
+       Applying patch from Jeff Franks, with function docs added.
+       
+       * gtk/gtkcheckbutton.c (gtk_check_button_new_with_mnemonic):
+       remove call to set_mnemonic_widget, change docs a bit.  
+
+       * gtk/gtkimagemenuitem.c (gtk_image_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkcheckmenuitem.c (gtk_check_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkmenuitem.c (gtk_menu_item_new_with_mnemonic): new function
+
+       * gtk/gtkradiobutton.c (gtk_radio_button_new_with_mnemonic): new
+       function
+       (gtk_radio_button_new_with_mnemonic_from_widget): new function
+
+       * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtktogglebutton.c (gtk_toggle_button_new_with_mnemonic): new
+       function        
+
+       * gtk/gtklabel.c (gtk_label_new_with_mnemonic): Improve docs on 
+       auto-selection of mnemonic widget.
+
 Mon Jun  4 15:05:24 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_max_width):
index 9c6b5c9dce996ac6177a6783ed02965ff5995d90..e343295994ccee8b7097d69b34d5c7c704c49678 100644 (file)
@@ -1,3 +1,33 @@
+2001-06-05  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkcolorsel.c: Use new mnemonic convenience functions
+
+       Applying patch from Jeff Franks, with function docs added.
+       
+       * gtk/gtkcheckbutton.c (gtk_check_button_new_with_mnemonic):
+       remove call to set_mnemonic_widget, change docs a bit.  
+
+       * gtk/gtkimagemenuitem.c (gtk_image_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkcheckmenuitem.c (gtk_check_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkmenuitem.c (gtk_menu_item_new_with_mnemonic): new function
+
+       * gtk/gtkradiobutton.c (gtk_radio_button_new_with_mnemonic): new
+       function
+       (gtk_radio_button_new_with_mnemonic_from_widget): new function
+
+       * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtktogglebutton.c (gtk_toggle_button_new_with_mnemonic): new
+       function        
+
+       * gtk/gtklabel.c (gtk_label_new_with_mnemonic): Improve docs on 
+       auto-selection of mnemonic widget.
+
 Mon Jun  4 15:05:24 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_max_width):
index 9c6b5c9dce996ac6177a6783ed02965ff5995d90..e343295994ccee8b7097d69b34d5c7c704c49678 100644 (file)
@@ -1,3 +1,33 @@
+2001-06-05  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkcolorsel.c: Use new mnemonic convenience functions
+
+       Applying patch from Jeff Franks, with function docs added.
+       
+       * gtk/gtkcheckbutton.c (gtk_check_button_new_with_mnemonic):
+       remove call to set_mnemonic_widget, change docs a bit.  
+
+       * gtk/gtkimagemenuitem.c (gtk_image_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkcheckmenuitem.c (gtk_check_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkmenuitem.c (gtk_menu_item_new_with_mnemonic): new function
+
+       * gtk/gtkradiobutton.c (gtk_radio_button_new_with_mnemonic): new
+       function
+       (gtk_radio_button_new_with_mnemonic_from_widget): new function
+
+       * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtktogglebutton.c (gtk_toggle_button_new_with_mnemonic): new
+       function        
+
+       * gtk/gtklabel.c (gtk_label_new_with_mnemonic): Improve docs on 
+       auto-selection of mnemonic widget.
+
 Mon Jun  4 15:05:24 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_max_width):
index 9c6b5c9dce996ac6177a6783ed02965ff5995d90..e343295994ccee8b7097d69b34d5c7c704c49678 100644 (file)
@@ -1,3 +1,33 @@
+2001-06-05  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkcolorsel.c: Use new mnemonic convenience functions
+
+       Applying patch from Jeff Franks, with function docs added.
+       
+       * gtk/gtkcheckbutton.c (gtk_check_button_new_with_mnemonic):
+       remove call to set_mnemonic_widget, change docs a bit.  
+
+       * gtk/gtkimagemenuitem.c (gtk_image_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkcheckmenuitem.c (gtk_check_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkmenuitem.c (gtk_menu_item_new_with_mnemonic): new function
+
+       * gtk/gtkradiobutton.c (gtk_radio_button_new_with_mnemonic): new
+       function
+       (gtk_radio_button_new_with_mnemonic_from_widget): new function
+
+       * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtktogglebutton.c (gtk_toggle_button_new_with_mnemonic): new
+       function        
+
+       * gtk/gtklabel.c (gtk_label_new_with_mnemonic): Improve docs on 
+       auto-selection of mnemonic widget.
+
 Mon Jun  4 15:05:24 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_max_width):
index 9c6b5c9dce996ac6177a6783ed02965ff5995d90..e343295994ccee8b7097d69b34d5c7c704c49678 100644 (file)
@@ -1,3 +1,33 @@
+2001-06-05  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkcolorsel.c: Use new mnemonic convenience functions
+
+       Applying patch from Jeff Franks, with function docs added.
+       
+       * gtk/gtkcheckbutton.c (gtk_check_button_new_with_mnemonic):
+       remove call to set_mnemonic_widget, change docs a bit.  
+
+       * gtk/gtkimagemenuitem.c (gtk_image_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkcheckmenuitem.c (gtk_check_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtkmenuitem.c (gtk_menu_item_new_with_mnemonic): new function
+
+       * gtk/gtkradiobutton.c (gtk_radio_button_new_with_mnemonic): new
+       function
+       (gtk_radio_button_new_with_mnemonic_from_widget): new function
+
+       * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_new_with_mnemonic):
+       new function
+
+       * gtk/gtktogglebutton.c (gtk_toggle_button_new_with_mnemonic): new
+       function        
+
+       * gtk/gtklabel.c (gtk_label_new_with_mnemonic): Improve docs on 
+       auto-selection of mnemonic widget.
+
 Mon Jun  4 15:05:24 2001  Jonathan Blandford  <jrb@redhat.com>
 
        * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_max_width):
index f888e651137d4aa46de9a7c5c8ef911e7fc0785d..9c535d95769bd699eb6fcf947d1e81794e43a734 100644 (file)
@@ -145,10 +145,9 @@ gtk_check_button_new_with_label (const gchar *label)
  *         mnemonic character
  * @returns: a new #GtkCheckButton
  *
- * Creates a new #GtkCheckButton containing a label.
- * If characters in @label are preceded by an underscore, they are underlined
- * indicating that they represent a keyboard accelerator called a mnemonic.
- * Pressing Alt and that key activates the checkbutton.
+ * Creates a new #GtkCheckButton containing a label. The label
+ * will be created using gtk_label_new_with_mnemonic(), so underscores
+ * in @label indicate the mnemonic for the check button.
  **/
 GtkWidget*
 gtk_check_button_new_with_mnemonic (const gchar *label)
@@ -159,7 +158,6 @@ gtk_check_button_new_with_mnemonic (const gchar *label)
   check_button = gtk_check_button_new ();
   label_widget = gtk_label_new_with_mnemonic (label);
   gtk_misc_set_alignment (GTK_MISC (label_widget), 0.0, 0.5);
-  gtk_label_set_mnemonic_widget (GTK_LABEL (label_widget), check_button);
   
   gtk_container_add (GTK_CONTAINER (check_button), label_widget);
   gtk_widget_show (label_widget);
index efeb6fcf07e464c1fa478cd61dc0adf4688bddf1..914888fd7ac51c66fd4c062d6c12d57cc61265eb 100644 (file)
@@ -165,6 +165,35 @@ gtk_check_menu_item_new_with_label (const gchar *label)
   return check_menu_item;
 }
 
+
+/**
+ * gtk_check_menu_item_new_with_mnemonic:
+ * @label: The text of the button, with an underscore in front of the
+ *         mnemonic character
+ * @returns: a new #GtkCheckMenuItem
+ *
+ * Creates a new #GtkCheckMenuItem containing a label. The label
+ * will be created using gtk_label_new_with_mnemonic(), so underscores
+ * in @label indicate the mnemonic for the menu item.
+ **/
+GtkWidget*
+gtk_check_menu_item_new_with_mnemonic (const gchar *label)
+{
+  GtkWidget *check_menu_item;
+  GtkWidget *accel_label;
+
+  check_menu_item = gtk_check_menu_item_new ();
+  accel_label = gtk_type_new (GTK_TYPE_ACCEL_LABEL);
+  gtk_label_set_text_with_mnemonic (GTK_LABEL (accel_label), label);
+  gtk_misc_set_alignment (GTK_MISC (accel_label), 0.0, 0.5);
+
+  gtk_container_add (GTK_CONTAINER (check_menu_item), accel_label);
+  gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (accel_label), check_menu_item);
+  gtk_widget_show (accel_label);
+
+  return check_menu_item;
+}
+
 void
 gtk_check_menu_item_set_active (GtkCheckMenuItem *check_menu_item,
                                gboolean          is_active)
index 87317741f79f69beea63f9ad0af50f3d0e6b757e..15d9707afbd2c6374d22121bc80995b69fc5e6a8 100644 (file)
@@ -67,16 +67,17 @@ struct _GtkCheckMenuItemClass
 };
 
 
-GtkType           gtk_check_menu_item_get_type        (void) G_GNUC_CONST;
-GtkWidget* gtk_check_menu_item_new            (void);
-GtkWidget* gtk_check_menu_item_new_with_label  (const gchar     *label);
-void      gtk_check_menu_item_set_active      (GtkCheckMenuItem *check_menu_item,
-                                               gboolean          is_active);
-void      gtk_check_menu_item_toggled         (GtkCheckMenuItem *check_menu_item);
-
-void       gtk_check_menu_item_set_inconsistent (GtkCheckMenuItem *check_menu_item,
-                                                 gboolean          setting);
-gboolean   gtk_check_menu_item_get_inconsistent (GtkCheckMenuItem *check_menu_item);
+GtkType           gtk_check_menu_item_get_type          (void) G_GNUC_CONST;
+GtkWidget* gtk_check_menu_item_new               (void);
+GtkWidget* gtk_check_menu_item_new_with_label    (const gchar      *label);
+GtkWidget* gtk_check_menu_item_new_with_mnemonic (const gchar      *label);
+void       gtk_check_menu_item_set_active        (GtkCheckMenuItem *check_menu_item,
+                                                  gboolean          is_active);
+void       gtk_check_menu_item_toggled           (GtkCheckMenuItem *check_menu_item);
+void       gtk_check_menu_item_set_inconsistent  (GtkCheckMenuItem *check_menu_item,
+                                                  gboolean          setting);
+gboolean   gtk_check_menu_item_get_inconsistent  (GtkCheckMenuItem *check_menu_item);
+
 
 #ifndef GTK_DISABLE_DEPRECATED
 void      gtk_check_menu_item_set_show_toggle (GtkCheckMenuItem *menu_item,
index 02f847d7c361010bf6a143e7bdce5a0b35a62989..a1cc67fe24f512b2d4a4d05cecd7bc90a9d11c4b 100644 (file)
@@ -854,7 +854,6 @@ do_popup (GtkColorSelection *colorsel,
 {
   GtkWidget *menu;
   GtkWidget *mi;
-  GtkWidget *label;
   
   g_object_set_data (G_OBJECT (drawing_area),
                      "gtk-color-sel",
@@ -862,9 +861,7 @@ do_popup (GtkColorSelection *colorsel,
   
   menu = gtk_menu_new ();
 
-  label = gtk_label_new_with_mnemonic (_("_Save color here"));
-  mi = gtk_menu_item_new ();
-  gtk_container_add (GTK_CONTAINER (mi), label);
+  mi = gtk_menu_item_new_with_mnemonic (_("_Save color here"));
 
   gtk_signal_connect (GTK_OBJECT (mi), "activate",
                       GTK_SIGNAL_FUNC (save_color_selected),
index e56f26b05f77607dd38df908e401433f2d37432a..68c020407f3579789a4c2a2618314f5b9390c7f0 100644 (file)
@@ -353,6 +353,38 @@ gtk_image_menu_item_new_with_label (const gchar *label)
   return GTK_WIDGET(image_menu_item);
 }
 
+
+/**
+ * gtk_image_menu_item_new_with_mnemonic:
+ * @label: The text of the button, with an underscore in front of the
+ *         mnemonic character
+ * @returns: a new #GtkImageMenuItem
+ *
+ * Creates a new #GtkImageMenuItem containing a label. The label
+ * will be created using gtk_label_new_with_mnemonic(), so underscores
+ * in @label indicate the mnemonic for the menu item.
+ **/
+GtkWidget*
+gtk_image_menu_item_new_with_mnemonic (const gchar *label)
+{
+  GtkImageMenuItem *image_menu_item;
+  GtkWidget *accel_label;
+  
+  image_menu_item = GTK_IMAGE_MENU_ITEM (g_object_new (GTK_TYPE_IMAGE_MENU_ITEM,
+                                                       NULL));
+
+  accel_label = gtk_type_new (GTK_TYPE_ACCEL_LABEL);
+  gtk_label_set_text_with_mnemonic (GTK_LABEL (accel_label), label);
+  gtk_misc_set_alignment (GTK_MISC (accel_label), 0.0, 0.5);
+
+  gtk_container_add (GTK_CONTAINER (image_menu_item), accel_label);
+  gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (accel_label),
+                                    GTK_WIDGET (image_menu_item));
+  gtk_widget_show (accel_label);
+
+  return GTK_WIDGET(image_menu_item);
+}
+
 GtkWidget*
 gtk_image_menu_item_new_from_stock (const gchar      *stock_id,
                                    GtkAccelGroup    *accel_group)
index e3381de09e00d951c9f9950c3fef5959af2e8749..d3fbc32e7d5db238268d35bcb5c35662c28a93b5 100644 (file)
@@ -62,14 +62,16 @@ struct _GtkImageMenuItemClass
 };
 
 
-GtkType           gtk_image_menu_item_get_type       (void) G_GNUC_CONST;
-GtkWidget* gtk_image_menu_item_new            (void);
-GtkWidget* gtk_image_menu_item_new_with_label (const gchar      *label);
-GtkWidget* gtk_image_menu_item_new_from_stock (const gchar      *stock_id,
-                                              GtkAccelGroup    *accel_group);
-void       gtk_image_menu_item_set_image      (GtkImageMenuItem *image_menu_item,
-                                              GtkWidget        *image);
-GtkWidget* gtk_image_menu_item_get_image      (GtkImageMenuItem *image_menu_item);
+GtkType           gtk_image_menu_item_get_type          (void) G_GNUC_CONST;
+GtkWidget* gtk_image_menu_item_new               (void);
+GtkWidget* gtk_image_menu_item_new_with_label    (const gchar      *label);
+GtkWidget* gtk_image_menu_item_new_with_mnemonic (const gchar      *label);
+GtkWidget* gtk_image_menu_item_new_from_stock    (const gchar      *stock_id,
+                                                  GtkAccelGroup    *accel_group);
+void       gtk_image_menu_item_set_image         (GtkImageMenuItem *image_menu_item,
+                                                  GtkWidget        *image);
+GtkWidget* gtk_image_menu_item_get_image         (GtkImageMenuItem *image_menu_item);
+
 
 #ifdef __cplusplus
 }
index aa90199320f896ebc88bd8a1b43c301f5ec34745..ac9e465df01a5f3631df4f374ce82ffc5d88c343 100644 (file)
@@ -423,10 +423,18 @@ gtk_label_new (const gchar *str)
  *
  * Creates a new #GtkLabel, containing the text in @str.
  *
- * If characters in @str are preceded by an underscore, they are underlined
- * indicating that they represent a keyboard accelerator called a mnemonic.
- * The mnemonic key can be used to activate another widget, chosen automatically,
- * or explicitly using gtk_label_set_mnemonic_widget().
+ * If characters in @str are preceded by an underscore, they are
+ * underlined indicating that they represent a keyboard accelerator
+ * called a mnemonic.  The mnemonic key can be used to activate
+ * another widget, chosen automatically, or explicitly using
+ * gtk_label_set_mnemonic_widget().
+ * 
+ * If gtk_label_set_mnemonic_widget()
+ * is not called, then the first activatable ancestor of the #GtkLabel
+ * will be chosen as the mnemonic widget. For instance, if the
+ * label is inside a button or menu item, the button or menu item will
+ * automatically become the mnemonic widget and be activated by
+ * the mnemonic.
  **/
 GtkWidget*
 gtk_label_new_with_mnemonic (const gchar *str)
index 4c68939ecf653ddef74604113e35b979677ec208..0501a8bd646e80095a921ccb4d0930139226688c 100644 (file)
@@ -229,6 +229,35 @@ gtk_menu_item_new_with_label (const gchar *label)
   return menu_item;
 }
 
+
+/**
+ * gtk_menu_item_new_with_mnemonic:
+ * @label: The text of the button, with an underscore in front of the
+ *         mnemonic character
+ * @returns: a new #GtkMenuItem
+ *
+ * Creates a new #GtkMenuItem containing a label. The label
+ * will be created using gtk_label_new_with_mnemonic(), so underscores
+ * in @label indicate the mnemonic for the menu item.
+ **/
+GtkWidget*
+gtk_menu_item_new_with_mnemonic (const gchar *label)
+{
+  GtkWidget *menu_item;
+  GtkWidget *accel_label;
+
+  menu_item = gtk_menu_item_new ();
+  accel_label = gtk_type_new (GTK_TYPE_ACCEL_LABEL);
+  gtk_label_set_text_with_mnemonic (GTK_LABEL (accel_label), label);
+  gtk_misc_set_alignment (GTK_MISC (accel_label), 0.0, 0.5);
+
+  gtk_container_add (GTK_CONTAINER (menu_item), accel_label);
+  gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (accel_label), menu_item);
+  gtk_widget_show (accel_label);
+
+  return menu_item;
+}
+
 static void
 gtk_menu_item_destroy (GtkObject *object)
 {
index a879bce7419f537fe4c6a81d0ce4bcbc56289b2c..77f6b435ce6b93913615f862eaccdfb3b7ed372b 100644 (file)
@@ -90,6 +90,7 @@ struct _GtkMenuItemClass
 GtkType           gtk_menu_item_get_type             (void) G_GNUC_CONST;
 GtkWidget* gtk_menu_item_new                  (void);
 GtkWidget* gtk_menu_item_new_with_label       (const gchar         *label);
+GtkWidget* gtk_menu_item_new_with_mnemonic    (const gchar         *label);
 void       gtk_menu_item_set_submenu          (GtkMenuItem         *menu_item,
                                               GtkWidget           *submenu);
 void       gtk_menu_item_remove_submenu       (GtkMenuItem         *menu_item);
index b3294bf7aa607acfd3a79c11c5f043950003fff5..373623e1558a4fb3cfda5cbd96e9881fc6a0cb7d 100644 (file)
@@ -229,6 +229,35 @@ gtk_radio_button_new_with_label (GSList      *group,
   return radio_button;
 }
 
+
+/**
+ * gtk_radio_button_new_with_mnemonic:
+ * @group: the radio button group
+ * @label: the text of the button, with an underscore in front of the
+ *         mnemonic character
+ * @returns: a new #GtkRadioButton
+ *
+ * Creates a new #GtkRadioButton containing a label. The label
+ * will be created using gtk_label_new_with_mnemonic(), so underscores
+ * in @label indicate the mnemonic for the button.
+ **/
+GtkWidget*
+gtk_radio_button_new_with_mnemonic (GSList      *group,
+                                   const gchar *label)
+{
+  GtkWidget *radio_button;
+  GtkWidget *label_widget;
+
+  radio_button = gtk_radio_button_new (group);
+  label_widget = gtk_label_new_with_mnemonic (label);
+  gtk_misc_set_alignment (GTK_MISC (label_widget), 0.0, 0.5);
+
+  gtk_container_add (GTK_CONTAINER (radio_button), label_widget);
+  gtk_widget_show (label_widget);
+
+  return radio_button;
+}
+
 GtkWidget*
 gtk_radio_button_new_from_widget (GtkRadioButton *group)
 {
@@ -249,6 +278,27 @@ gtk_radio_button_new_with_label_from_widget (GtkRadioButton *group,
   return gtk_radio_button_new_with_label (l, label);
 }
 
+/**
+ * gtk_radio_button_new_with_mnemonic_from_widget:
+ * @group: widget to get radio group from
+ * @label: the text of the button, with an underscore in front of the
+ *         mnemonic character
+ * @returns: a new #GtkRadioButton
+ *
+ * Creates a new #GtkRadioButton containing a label. The label
+ * will be created using gtk_label_new_with_mnemonic(), so underscores
+ * in @label indicate the mnemonic for the button.
+ **/
+GtkWidget*
+gtk_radio_button_new_with_mnemonic_from_widget (GtkRadioButton *group,
+                                               const gchar    *label)
+{
+  GSList *l = NULL;
+  if (group)
+    l = gtk_radio_button_group (group);
+  return gtk_radio_button_new_with_mnemonic (l, label);
+}
+
 GSList*
 gtk_radio_button_group (GtkRadioButton *radio_button)
 {
index df91ddfe83ec4ebc9ff316f357d3b4f7e6f723e1..62b66f7440513322802c734bc65cb40c0bd1551c 100644 (file)
@@ -62,16 +62,20 @@ struct _GtkRadioButtonClass
 
 
 GtkType            gtk_radio_button_get_type        (void) G_GNUC_CONST;
-GtkWidget*  gtk_radio_button_new            (GSList         *group);
-GtkWidget*  gtk_radio_button_new_from_widget (GtkRadioButton *group);
-GtkWidget*  gtk_radio_button_new_with_label  (GSList        *group,
-                                             const gchar    *label);
-GtkWidget*  gtk_radio_button_new_with_label_from_widget (GtkRadioButton *group,
-                                                        const gchar    *label);
-GSList*            gtk_radio_button_group           (GtkRadioButton *radio_button);
-void       gtk_radio_button_set_group       (GtkRadioButton *radio_button,
-                                             GSList         *group);
 
+GtkWidget* gtk_radio_button_new                           (GSList         *group);
+GtkWidget* gtk_radio_button_new_from_widget               (GtkRadioButton *group);
+GtkWidget* gtk_radio_button_new_with_label                (GSList         *group,
+                                                           const gchar    *label);
+GtkWidget* gtk_radio_button_new_with_label_from_widget    (GtkRadioButton *group,
+                                                           const gchar    *label);
+GtkWidget* gtk_radio_button_new_with_mnemonic             (GSList         *group,
+                                                           const gchar    *label);
+GtkWidget* gtk_radio_button_new_with_mnemonic_from_widget (GtkRadioButton *group,
+                                                           const gchar    *label);
+GSList*    gtk_radio_button_group                         (GtkRadioButton *radio_button);
+void       gtk_radio_button_set_group                     (GtkRadioButton *radio_button,
+                                                           GSList         *group);
 
 #ifdef __cplusplus
 }
index 27db681dcb298b43f0b0c22a29da2b2264fc9c97..a392057d4e862a3a1fdef69ada2030df5c024c2c 100644 (file)
@@ -138,6 +138,37 @@ gtk_radio_menu_item_new_with_label (GSList *group,
   return radio_menu_item;
 }
 
+
+/**
+ * gtk_radio_menu_item_new_with_mnemonic:
+ * @group: group the radio menu item is inside
+ * @label: the text of the button, with an underscore in front of the
+ *         mnemonic character
+ * @returns: a new #GtkRadioMenuItem
+ *
+ * Creates a new #GtkRadioMenuItem containing a label. The label
+ * will be created using gtk_label_new_with_mnemonic(), so underscores
+ * in @label indicate the mnemonic for the menu item.
+ **/
+GtkWidget*
+gtk_radio_menu_item_new_with_mnemonic (GSList *group,
+                                      const gchar *label)
+{
+  GtkWidget *radio_menu_item;
+  GtkWidget *accel_label;
+
+  radio_menu_item = gtk_radio_menu_item_new (group);
+  accel_label = gtk_type_new (GTK_TYPE_ACCEL_LABEL);
+  gtk_label_set_text_with_mnemonic (GTK_LABEL (accel_label), label);
+  gtk_misc_set_alignment (GTK_MISC (accel_label), 0.0, 0.5);
+
+  gtk_container_add (GTK_CONTAINER (radio_menu_item), accel_label);
+  gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (accel_label), radio_menu_item);
+  gtk_widget_show (accel_label);
+
+  return radio_menu_item;
+}
+
 GSList*
 gtk_radio_menu_item_group (GtkRadioMenuItem *radio_menu_item)
 {
index b81376cf120f7864b7074f2a7550257a184fc67d..9c0f362f15f43530f0b199bcea5b548e81c10041 100644 (file)
@@ -61,13 +61,16 @@ struct _GtkRadioMenuItemClass
 };
 
 
-GtkType    gtk_radio_menu_item_get_type              (void) G_GNUC_CONST;
-GtkWidget* gtk_radio_menu_item_new           (GSList           *group);
-GtkWidget* gtk_radio_menu_item_new_with_label (GSList          *group,
-                                              const gchar      *label);
-GSList*           gtk_radio_menu_item_group          (GtkRadioMenuItem *radio_menu_item);
-void      gtk_radio_menu_item_set_group      (GtkRadioMenuItem *radio_menu_item,
-                                              GSList           *group);
+GtkType    gtk_radio_menu_item_get_type                 (void) G_GNUC_CONST;
+GtkWidget* gtk_radio_menu_item_new               (GSList           *group);
+GtkWidget* gtk_radio_menu_item_new_with_label    (GSList           *group,
+                                                  const gchar      *label);
+GtkWidget* gtk_radio_menu_item_new_with_mnemonic (GSList           *group,
+                                                  const gchar      *label);
+GSList*    gtk_radio_menu_item_group             (GtkRadioMenuItem *radio_menu_item);
+void       gtk_radio_menu_item_set_group         (GtkRadioMenuItem *radio_menu_item,
+                                                  GSList           *group);
+
 
 
 #ifdef __cplusplus
index 434100df0aec4f1026bf034c5b5eb9d6906dccbd..cd61047faeea7e77f5ecacc7807e55094c9c9bc4 100644 (file)
@@ -202,6 +202,32 @@ gtk_toggle_button_new_with_label (const gchar *label)
   return toggle_button;
 }
 
+/**
+ * gtk_toggle_button_new_with_mnemonic:
+ * @label: the text of the button, with an underscore in front of the
+ *         mnemonic character
+ * @returns: a new #GtkToggleButton
+ *
+ * Creates a new #GtkToggleButton containing a label. The label
+ * will be created using gtk_label_new_with_mnemonic(), so underscores
+ * in @label indicate the mnemonic for the button.
+ **/
+GtkWidget*
+gtk_toggle_button_new_with_mnemonic (const gchar *label)
+{
+  GtkWidget *toggle_button;
+  GtkWidget *label_widget;
+
+  toggle_button = gtk_toggle_button_new ();
+  label_widget = gtk_label_new_with_mnemonic (label);
+  gtk_misc_set_alignment (GTK_MISC (label_widget), 0.5, 0.5);
+
+  gtk_container_add (GTK_CONTAINER (toggle_button), label_widget);
+  gtk_widget_show (label_widget);
+
+  return toggle_button;
+}
+
 static void
 gtk_toggle_button_set_property (GObject      *object,
                                guint         prop_id,
index c00b98bad5ade38414e2162c79498125c1ef76b3..40c8cd7b4b505fc41ae2b2d70084b27a809f2447 100644 (file)
@@ -67,19 +67,21 @@ struct _GtkToggleButtonClass
 };
 
 
-GtkType    gtk_toggle_button_get_type       (void) G_GNUC_CONST;
-GtkWidget* gtk_toggle_button_new            (void);
-GtkWidget* gtk_toggle_button_new_with_label (const gchar     *label);
-void       gtk_toggle_button_set_mode       (GtkToggleButton *toggle_button,
-                                            gboolean         draw_indicator);
-void       gtk_toggle_button_set_active     (GtkToggleButton *toggle_button,
-                                            gboolean         is_active);
-gboolean   gtk_toggle_button_get_active            (GtkToggleButton *toggle_button);
-void       gtk_toggle_button_toggled        (GtkToggleButton *toggle_button);
-
-void       gtk_toggle_button_set_inconsistent (GtkToggleButton *toggle_button,
-                                               gboolean         setting);
-gboolean   gtk_toggle_button_get_inconsistent (GtkToggleButton *toggle_button);
+GtkType    gtk_toggle_button_get_type          (void) G_GNUC_CONST;
+
+GtkWidget* gtk_toggle_button_new               (void);
+GtkWidget* gtk_toggle_button_new_with_label    (const gchar     *label);
+GtkWidget* gtk_toggle_button_new_with_mnemonic (const gchar     *label);
+void       gtk_toggle_button_set_mode          (GtkToggleButton *toggle_button,
+                                                gboolean         draw_indicator);
+void       gtk_toggle_button_set_active        (GtkToggleButton *toggle_button,
+                                                gboolean         is_active);
+gboolean   gtk_toggle_button_get_active        (GtkToggleButton *toggle_button);
+void       gtk_toggle_button_toggled           (GtkToggleButton *toggle_button);
+void       gtk_toggle_button_set_inconsistent  (GtkToggleButton *toggle_button,
+                                                gboolean         setting);
+gboolean   gtk_toggle_button_get_inconsistent  (GtkToggleButton *toggle_button);
+
 
 #ifdef __cplusplus
 }